Есть два поля-списка: «Партнёры» и «Телефонные номера».
«Партнёры» относятся к «Телефонные номера» как one2many (у одного Партнёра может быть n-ное количество Телефонных номеров).
Задача: необходимо, чтобы при выборе Партнёра из списка «Партнёры», в списке «Телефонные номера» отображались только телефонные номера, принадлежащие данному Партнёру. Понимаю, что это возможно выкрутить, но как именно — так и не понял.
P.S. Пока удалось сделать только обратное: при выборе Телефонного номера в списке «Телефонные номера» устанавливается домен для списка «Партнёры», код ниже:
from openerp.osv import fields, osv
class crm_phonecall(osv.osv):
_inherit = "crm.phonecall"
_columns = {
'phonenumber': fields.many2one('phonenumber.phonenumber', 'Phone number', required=True, ondelete='cascade'),
}
# Update partner's domain. Leave the only partner that owns selected phonenumber
def onchange_phonenumber(self, cr, uid, ids, ph_selected):
if ph_selected > 0:
record=self.pool.get('phonenumber.phonenumber').browse(cr, uid, ph_selected, context=None)
return {'value': {'partner_id': None},'domain': {'partner_id': [('id','=',record.partner_id.id)]}}
return {'value': {'partner_id': None},'domain': {'partner_id':''}}
crm_phonecall();
]]>